//
// Copyright (C) [2024] Xingyun Integrated Circuit, Inc.
//
// GreenCode was a private technology asset of Xingyun Integrated Circuit， Inc （Confidential）
//  Author: Shawn.Tan
//  Date : 2025.10.28
//
//  History : Initial Version 2025.10.28
//
//
#ifndef Green_ChoicesParser_H
#define Green_ChoicesParser_H

#include <vector>

namespace Green {

  class ChoicesSet;
  class ArchInfo;

  /*!
    \class ChoicesParser
    \brief Parser class for choices files.

    ChoicesParser handles parsing of all choices files.
  */
  class ChoicesParser {
  public:
    /*!
      Constructor, pass in pointer to ChoicesSet object.
    */
    explicit ChoicesParser(std::vector<ChoicesSet* >& setsVector)
      : mChoicesSets(setsVector)
    {
    }

    ~ChoicesParser() //!< Destructor.
    {
    }

    void Setup(const ArchInfo& archInfo);
  protected:
    std::vector<ChoicesSet *>& mChoicesSets;

    friend class ChoicesFileParser;
  };

}

#endif
